package com.bdqn.demo05;

/**
 * 单例模式01 (懒汉式)
 *
 * @author LILIBO
 * @since 2021-12-02
 */
public class Singleton01 {

    /**
     * 优势：在类加载时不会事先占用空间，节省内存资源
     * 劣势：在第一次获得实例时，加载过程需要时间
     */
    private static Singleton01 singleton01 = null; // 懒汉式 第二次调用getInstance()时singleton01将不为空

    /**
     * 将构造方法私有化
     */
    private Singleton01() {

    }

    /**
     * 获取实例
     *
     * @return
     */
    public static synchronized Singleton01 getInstance() {
        if (singleton01 == null) {
            singleton01 = new Singleton01();
        }
        add(); // 每次加1
        return singleton01;
    }

    /**
     * 记录网站访问人数
     */
    private static int num = 0;

    String msg = "jdksfljkfdjlj 1GB 5分钟";

    private static void add() {
        num++;
    }

    public int count() {
        return num;
    }
}
